55 research outputs found

    Efficient Logging in Non-Volatile Memory by Exploiting Coherency Protocols

    Get PDF
    Non-volatile memory (NVM) technologies such as PCM, ReRAM and STT-RAM allow processors to directly write values to persistent storage at speeds that are significantly faster than previous durable media such as hard drives or SSDs. Many applications of NVM are constructed on a logging subsystem, which enables operations to appear to execute atomically and facilitates recovery from failures. Writes to NVM, however, pass through a processor's memory system, which can delay and reorder them and can impair the correctness and cost of logging algorithms. Reordering arises because of out-of-order execution in a CPU and the inter-processor cache coherence protocol. By carefully considering the properties of these reorderings, this paper develops a logging protocol that requires only one round trip to non-volatile memory while avoiding expensive computations. We show how to extend the logging protocol to building a persistent set (hash map) that also requires only a single round trip to non-volatile memory for insertion, updating, or deletion

    Approximating minimum-power edge-multicovers

    Full text link
    Given a graph with edge costs, the {\em power} of a node is themaximum cost of an edge incident to it, and the power of a graph is the sum of the powers of its nodes. Motivated by applications in wireless networks, we consider the following fundamental problem in wireless network design. Given a graph G=(V,E)G=(V,E) with edge costs and degree bounds {r(v):vV}\{r(v):v \in V\}, the {\sf Minimum-Power Edge-Multi-Cover} ({\sf MPEMC}) problem is to find a minimum-power subgraph JJ of GG such that the degree of every node vv in JJ is at least r(v)r(v). We give two approximation algorithms for {\sf MPEMC}, with ratios O(logk)O(\log k) and k+1/2k+1/2, where k=maxvVr(v)k=\max_{v \in V} r(v) is the maximum degree bound. This improves the previous ratios O(logn)O(\log n) and k+1k+1, and implies ratios O(logk)O(\log k) for the {\sf Minimum-Power kk-Outconnected Subgraph} and O(logklognnk)O(\log k \log \frac{n}{n-k}) for the {\sf Minimum-Power kk-Connected Subgraph} problems; the latter is the currently best known ratio for the min-cost version of the problem

    Fine-Grain Checkpointing with In-Cache-Line Logging

    Full text link
    Non-Volatile Memory offers the possibility of implementing high-performance, durable data structures. However, achieving performance comparable to well-designed data structures in non-persistent (transient) memory is difficult, primarily because of the cost of ensuring the order in which memory writes reach NVM. Often, this requires flushing data to NVM and waiting a full memory round-trip time. In this paper, we introduce two new techniques: Fine-Grained Checkpointing, which ensures a consistent, quickly recoverable data structure in NVM after a system failure, and In-Cache-Line Logging, an undo-logging technique that enables recovery of earlier state without requiring cache-line flushes in the normal case. We implemented these techniques in the Masstree data structure, making it persistent and demonstrating the ease of applying them to a highly optimized system and their low (5.9-15.4\%) runtime overhead cost.Comment: In 2019 Architectural Support for Programming Languages and Operating Systems (ASPLOS 19), April 13, 2019, Providence, RI, US

    The Teleportation Design Pattern for Hardware Transactional Memory

    Get PDF
    We identify a design pattern for concurrent data structures, called teleportation, that uses best- effort hardware transactional memory to speed up certain kinds of legacy concurrent data struc- tures. Teleportation unifies and explains several existing data structure designs, and it serves as the basis for novel approaches to reducing the memory traffic associated with fine-grained locking, and with hazard pointer management for memory reclamation

    Object-Oriented Recovery for Non-volatile Memory

    Get PDF
    New non-volatile memory (NVM) technologies enable direct, durable storage of data in an application's heap. Durable, randomly accessible memory facilitates the construction of applications that do not lose data at system shutdown or power failure. Existing NVM programming frameworks provide mechanisms to consistently capture a running application's state. They do not, however, fully support object-oriented languages or ensure that the persistent heap is consistent with the environment when the application is restarted. In this paper, we propose a new NVM language extension and runtime system that supports object-oriented NVM programming and avoids the pitfalls of prior approaches. At the heart of our technique is \emph{object reconstruction}, which transparently restores and reconstructs a persistent object's state during program restart. It is implemented in NVMReconstruction, a Clang/LLVM extension and runtime library that provides: (i) transient fields in persistent objects, (ii) support for virtual functions and function pointers, (iii) direct representation of persistent pointers as virtual addresses, and (iv) type-specific reconstruction of a persistent object during program restart. In addition, NVMReconstruction supports updating an application's code, even if this causes objects to expand, by providing object migration. NVMReconstruction also can compact the persistent heap to reduce fragmentation. In experiments, we demonstrate the versatility and usability of object reconstruction and its low runtime performance cost

    The Inherent Cost of Remembering Consistently

    Get PDF
    Non-volatile memory (NVM) promises fast, byte-addressable and durable storage, with raw access latencies in the same order of magnitude as DRAM. But in order to take advantage of the durability of NVM, programmers need to design persistent objects which maintain consistent state across system crashes and restarts. Concurrent implementations of persistent objects typically make heavy use of expensive persistent fence instructions to order NVM accesses, thus negating some of the performance benefits of NVM. This raises the question of the minimal number of persistent fence instructions required to implement a persistent object. We answer this question in the deterministic lock-free case by providing lower and upper bounds on the required number of fence instructions. We obtain our upper bound by presenting a new universal construction that implements durably any object using at most one persistent fence per update operation invoked. Our lower bound states that in the worst case, each process needs to issue at least one persistent fence per update operation invoked

    Induction of G1 and G2/M cell cycle arrests by the dietary compound 3,3'-diindolylmethane in HT-29 human colon cancer cells

    Get PDF
    <p>Abstract</p> <p>Background</p> <p>3,3'-Diindolylmethane (DIM), an indole derivative produced in the stomach after the consumption of broccoli and other cruciferous vegetables, has been demonstrated to exert anti-cancer effects in both <it>in vivo </it>and <it>in vitro </it>models. We have previously determined that DIM (0 – 30 μmol/L) inhibited the growth of HT-29 human colon cancer cells in a concentration-dependent fashion. In this study, we evaluated the effects of DIM on cell cycle progression in HT-29 cells.</p> <p>Methods</p> <p>HT-29 cells were cultured with various concentrations of DIM (0 – 30 μmol/L) and the DNA was stained with propidium iodide, followed by flow cytometric analysis. [<sup>3</sup>H]Thymidine incorporation assays, Western blot analyses, immunoprecipitation and <it>in vitro </it>kinase assays for cyclin-dependent kinase (CDK) and cell division cycle (CDC)2 were conducted.</p> <p>Results</p> <p>The percentages of cells in the G1 and G2/M phases were dose-dependently increased and the percentages of cells in S phase were reduced within 12 h in DIM-treated cells. DIM also reduced DNA synthesis in a dose-dependent fashion. DIM markedly reduced CDK2 activity and the levels of phosphorylated retinoblastoma proteins (Rb) and E2F-1, and also increased the levels of hypophosphorylated Rb. DIM reduced the protein levels of cyclin A, D1, and CDK4. DIM also increased the protein levels of CDK inhibitors, p21<sup>CIP1/WAF1 </sup>and p27<sup>KIPI</sup>. In addition, DIM reduced the activity of CDC2 and the levels of CDC25C phosphatase and cyclin B1.</p> <p>Conclusion</p> <p>Here, we have demonstrated that DIM induces G1 and G2/M phase cell cycle arrest in HT-29 cells, and this effect may be mediated by reduced CDK activity.</p
    corecore